Managing date and time information is a critical aspect of database operations. SQL offers a robust set of date and time functions that provide a wide range of capabilities, from simple data retrieval to complex calculations. This chapter delves into the key SQL functions for date and time manipulation, helping you understand how to handle temporal data proficiently.
DATE: Stores the date in the format YYYY-MM-DD
TIME: Stores time in the format HH:MI:SS
DATETIME/TIMESTAMP: Stores both date and time
Common SQL Date and Time Functions
Current Date and Time
CURRENT_DATE: Returns the current date
CURRENT_TIME: Returns the current time
CURRENT_TIMESTAMP: Returns the current date and time
SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;
YEAR(): Extracts the year from a date
MONTH(): Extracts the month from a date
DAY(): Extracts the day from a date
HOUR(), MINUTE(), SECOND(): Extract time components
SELECT YEAR(order_date), MONTH(order_date), DAY(order_date) FROM Orders;
Date Arithmetic
DATE_ADD(): Adds a specified time interval to a date
DATE_SUB(): Subtracts a specified time interval from a date
DATEDIFF(): Finds the difference between two dates
SELECT DATE_ADD(order_date, INTERVAL 7 DAY) FROM Orders;
SELECT DATEDIFF(end_date, start_date) FROM Projects;
Formatting Dates
DATE_FORMAT(): Formats the date according to specified format strings (MySQL-specific)
SELECT DATE_FORMAT(order_date, '%M %d %Y') FROM Orders;
Combining Date and Time Functions in Queries
You can combine these functions to create more complex queries:
SELECT product_id, YEAR(order_date) AS OrderYear
FROM Orders
WHERE DATEDIFF(CURRENT_DATE, order_date) <= 30;
Best Practices
Summary
SQL's rich set of date and time functions offers you the tools to perform complex manipulations and calculations, thereby facilitating the efficient management of temporal data. As date and time data often play a crucial role in business logic, mastering these functions will enable you to create more robust, flexible, and insightful database applications.